﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WhiteFox.DAlessio.Agenda.Domain.Model;
using WhiteFox.DAlessio.Agenda.View.Controllers;
using WhiteFox.DAlessio.Patterns.UI.MVC;

namespace WhiteFox.DAlessio.Agenda.View
{
    public partial class frmListarTelefones : frmListarTelefonesView, IView
    {
        Contato _contato = null;

        public frmListarTelefones(Contato contato)
        {
            InitializeComponent();

            Controller.RegisterView(this);

            this.Load += frmListarTelefones_Load;

            _contato = contato;
        }

        
        void frmListarTelefones_Load(object sender, EventArgs e)
        {
            
            InitData(true);
        }

        public void ModelChange(object sender, ModelChangeEventArgs e)
        {
            InitData(e.ForceChange);
        }

        public void InitData(bool isForceLoad)
        {
            if (isForceLoad)
            {
                if (_contato != null)
                {
                    //dgv.DataSource = Controller.ListarPorContato(_contato);
                    var list = new List<Telefone>();

                    foreach (var tmp in Controller.Domain.Repository.GetAll())
                    {
                        if (tmp.Contato_Id == _contato.Id)
                            list.Add(tmp);
                    }
                    dgv.DataSource = list;

                    dgv.Columns["Contato_Id"].Visible = false;
                }
            }
        }
    }

    //Classe necessária para que o Form seja visualizado em modo Designer (o modo Designer não consegue renderizar o Form em classes com herança genérica)
    public class frmListarTelefonesView : ViewBase<TelefoneControler> { }   

}
